﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using bolsatrabajo.Persistencia;
using bolsatrabajo.Dominio.NHIBERNATE;

namespace bolsatrabajo.Negocio
{
    public class ServPostulante
    {
        // Dependencias
        IPostulanteNH PostulanteNH { get; set; }
        IPostulacionNH PostulacionNH { get; set; }

        // Servicios básicos
        public Postulante CrearPostulante(Postulante postulante)
        {
            Postulante existepostulante = this.ObtenerPostulante(postulante.Correo);
            if (existepostulante != null)
                throw new Exception("Postulante ya existe");
            return PostulanteNH.Crear(postulante);
        }
        public Postulante ObtenerPostulante(String xcorreo)
        {
            return PostulanteNH.Obtener(xcorreo);
        }
        public Postulante ModificarPostulante(Postulante postulante)
        {
            Postulante existepostulante = this.ObtenerPostulante(postulante.Correo);
            if (existepostulante == null)
                throw new Exception("Postulante no existe");
            return PostulanteNH.Modificar(postulante);
        }
        public void EliminarPostulante(Postulante postulante)
        {
            Postulante existepostulante = this.ObtenerPostulante(postulante.Correo);
            if (existepostulante == null)
                throw new Exception("Postulante no existe");
            PostulanteNH.Eliminar(postulante);
        }

        // Servicios avanzados
        public ICollection<Postulante> ListarxProfesion(String profesion)
        {
            return PostulanteNH.ListarxProfesion(profesion);
        }

        public ICollection<Postulante> ListarxProfesionyUbicacion(String profesion, String ubicacion)
        {
            return PostulanteNH.ListarxProfesionyUbicacion(profesion, ubicacion);
        }
        public ICollection<Postulante> ListarPostulantes()
        {
            return PostulanteNH.ListarPostulantes();
        }
        public Postulante ValidarCorreoyContrasena(String xcorreo, String xcontrasena)
        {
            return PostulanteNH.ObtenerPorCorreoYContrasena(xcorreo,xcontrasena);
        }

    }
}